package org.tea.inventory.db.dao;

import java.util.List;
import java.util.Map;

import org.tea.inventory.db.domain.AlumniUser;
import org.apache.ibatis.annotations.Param;

public interface AlumniUserMapper {
    int insert(AlumniUser record);

    int insertSelective(AlumniUser record);
    
    int updateByPrimaryKeySelective(AlumniUser record);

    int updateWechatName(@Param("wechatName") String wechatName,@Param("openId") String openId);

    int updateByPrimaryKey(AlumniUser record);

	List<AlumniUser> selectByExample(AlumniUser example);

	AlumniUser selectByPrimaryKey(Integer id);

	long countByUser(AlumniUser user);

	AlumniUser selectOneByOpenId(@Param("openId")String openId);

	List<Map> findAlumniRecordById(
			@Param("userId") Integer userId,
			@Param("pageIndex") int pageIndex,
            @Param("pageSize") int pageSize);

	List<Map> findAlumniRecord(@Param("userId") Integer userId,
							   @Param("valString") String valString);

	List<Map> selectMyOrganizeByUserId(@Param("userId") Integer userId);

	Map selectById(@Param("userId") Integer userId);

	List<AlumniUser> selectUserByUserName(String userName);

	/**
	 * 查询校友录列表，待审核用户除外
	 * @param example
	 * @return
	 */
	List<AlumniUser> selectAlumniUser(AlumniUser example);

	/**
	 * 查询游客列表，待审核用户除外
	 * @return
	 */
	List<AlumniUser> selectAlumniUserNotYK();

	/**
     * 查询总条数
     *
     * @param userId
     * @return
     */
	int selectTotalCount(@Param("userId") Integer userId);

	/**
	 * 查询校友录人数（非游客）
	 * @return
	 */
	long selectCountNotYK();

	/**
	 * 根据openId更新分数
	 * @param example
	 */
	int updatePkScoreByOpenId(AlumniUser example);


	List<AlumniUser> selectFriendRanking(@Param("userId") Integer userId);

	List<AlumniUser> selectWorldRanking(@Param("userId") Integer userId);


	AlumniUser selectAlumniUserByLoginId(@Param("loginId") String loginId);

	/**
	 * 随机获得一个非本人的人的信息（用于PK）
	 * @param openId
	 * @return
	 */
    AlumniUser getRandomOneExceptOpenId(@Param("openId") String openId);
}